﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArrList
{
    class Program
    {
        static void Main(string[] args)
        {
            //查找集合中是否存在一个元素
            ArrayList a1 = new ArrayList() { "aaa", "bbb", "ccc", "ddd" };
            int index = a1.IndexOf("bbb");
            if(index != -1)
            {
                Console.WriteLine("集合中存在"+a1[index]);
            }
            else
            {
                Console.WriteLine("集合中不存在"+a1[index]);
            }
            //将集合中下标为偶数的元素添加到另一个集合中
            ArrayList a2 = new ArrayList();
            for (int i = 0; i < a2.Count; i++)
            {
                a2.Add(a1[i]);
            }
            foreach(var v in a2)
            {
                Console.WriteLine(v);
            }

            //集合中的第一个元素后面添加元素，使用Insert方法每次只能添加一个元素，
            //但是用InsertRange方法能直接将一个集合插入到另一个集合中

            //Insert方法 此处1值集合下标，下标始于1,1与1以后的元素往后移

            a1.Insert(1, 9);
            foreach(var v2 in a1)
            {
                Console.WriteLine(v2);
            }
            //InsertRange（）;
            ArrayList a3 = new ArrayList() { 1, 2, 3 };
            //1指的是集合的下标，下标始于1,大于等于1的所有元素后移
            a1.InsertRange(1, a3);
            foreach(var v in a1)
            {
                Console.WriteLine(v);
            }
            //Sort 方法排序  这里Sort方法将集合中的元素按照字母的ASCII码从小到大排序，相当于字母的顺序。 需同一类型才可比较  数字也可比较排序
            ArrayList a4 = new ArrayList() { "aaa", "bbb", "ccc" };
            a4.Sort();
            foreach(var v in a4)
            {
                Console.WriteLine(v);
            }
            //自定义比较器类 MyCompare 没有在集合中指定统一的数据类型，需要用自定义比较起来完成排序
            ArrayList a5 = new ArrayList() { "a", "c", "e", "f", 3, 5, 6 };
            //创建自定义比较器实例
            MyCompare myCompare = new MyCompare();
            a5.Sort(myCompare);
            foreach(var v in a5)
            {
                Console.WriteLine(v+"@");
            }
        }
    }
}
